// pages/home/home.js
import request from '../../utils/request';
Page({
// 用来请求轮播图的数据函数
async getBannerList(){
  const res = await request({url:'/banner',data:{type:2}})
   this.setData({
      bannerList:res.banners
  })
},
// 用来请求推荐歌曲的数据
async getDescData(){
  const res = await request({url:'/personalized',data:{limit:10}})
  if(res.code === 200){
    this.setData({
      descList:res.result
    })
  }
},
// 获取排行榜的数据
async getrankingList(){
  // 由于idx是我们的获取数据的方式，而且每一个idx只对应一个榜单，所以我们需要进行遍历，而且只需要前三个的数据。最后进行整理数据
  let num = 0;// 这是我们进行遍历的数据
  let arr = []
  // 遍历  num小于5的时候执行
  while(num<5){
    // 进行发送请求，并且我们的idx是每次遍历都会请求对应idx的数据
    // 由于const是在一个大括号中形成死亡作用域(独立作用域) 每一次的 res 都不是同一个
    const res = await request({url:'/top/list',data:{idx:num}})
    // 只有请求成功了才会进行下一次
    if(res.code === 200){
      // 整理我们需要的数据
      let obj = {
        id:res.playlist.id,
          name:res.playlist.name,
          rankingList:res.playlist.tracks.slice(0,3)
      }

      arr.push(obj)
      // 传入要进行渲染的数据中
      // 我们的num++ 去请求下一次的数据
      num++
    }

    this.setData({
      rankingListData: arr
    })
  }
},
  // 跳转到每日推荐
  goRecommend(){
    wx.navigateTo({
      url: '/packageSong/pages/recommend/recommend',
    })
  },
  /**
   * 页面的初始数据
   */
  data: {
    bannerList:[],
    descList:[],
    rankingListData:[],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getBannerList(),
    this.getDescData(),
    this.getrankingList()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})